﻿using System;
using TestingConcurrencyBenchmark.Problems.ReadersWriters;

namespace TestingConcurrencyBenchmark.ProblemFactories
{
    internal class ReadersWritersFactory : IProblemFactory<IReaderWriter>
    {
        #region IProblemFactory<IReaderWriter> Members

        public IReaderWriter GetSolution()
        {
            return new ReaderWriterSolution();
        }

        public IReaderWriter GetSolutionWithDeadlock()
        {
            throw new NotImplementedException();
        }

        public IReaderWriter GetSolutionWithRaceCondition()
        {
            return new ReaderWriterWithRaceCondition();
        }

        public IReaderWriter GetSolutionWithDatarace()
        {
            return new ReaderWriterWithDataRace();
        }

        #endregion
    }
}